package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 商品属性值对象 p_store_product_attr_value
 *
 * @author ruoyi
 * @date 2022-08-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("p_store_product_attr_value")
public class PStoreProductAttrValue extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;
    /**
     * 商品ID
     */
    private Long productId;
    /**
     * 商品属性索引值 (attr_value|attr_value[|....])
     */
    private String sku;
    /**
     * 属性对应的库存
     */
    @NotNull(message = "属性对应的库存不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer stock;
    /**
     * 销量
     */
    private Integer sales;
    /**
     * 属性金额
     */
    @NotNull(message = "属性对应的库存不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal price;
    /**
     * 图片
     */
    private String image;
    /**
     * 成本价
     */
    private BigDecimal cost;
    /**
     * 商品条码
     */
    private String barCode;
    /**
     * 原价
     */
    private BigDecimal otPrice;
    /**
     * 重量
     */
    private BigDecimal weight;
    /**
     * 体积
     */
    private BigDecimal volume;
    /**
     * 一级返佣
     */
    private BigDecimal brokerage;
    /**
     * 二级返佣
     */
    private BigDecimal brokerageTwo;
    /**
     * 活动类型 0=商品，1=秒杀，2=砍价，3=拼团
     */
    private String type;
    /**
     * 活动限购数量
     */
    private Long quota;
    /**
     * 活动限购数量显示
     */
    private Long quotaShow;
    /**
     * attr_values 创建更新时的属性对应
     */
    private String attrValue;

    @TableField(exist = false)
    @ApiModelProperty("规格图片")
    private String url;

}
